iT邦幫忙

2024 iThome 鐵人賽

DAY 30
0
Security

零知識證明-走進PLONK世界系列 第 30

[Day30] 零知識證明-走進PLONK世界: PlonK 演算法(第二至五輪)

  • 分享至 

  • xImage
  •  

由於每一輪都會涉及一定程度的計算,在這一篇就進一步簡化,希望可以讓大家在30天內能了解到什麼是PLONK,
同時也會在往後針對每一輪的計算作出深入解釋,這篇就算是為大家在深入理解之前打好一個底。
雖然今天是最後一篇,但不是終結,而是為了進階的學習打好基礎,在有足夠的基礎之下迎接新的學習。

第二輪

會利用複製限制來確保電路是線正確的及建立一個多項式的排列。
在進行運算之前,需要接收一個排列的挑戰,和第一輪得出的3個值,和一個進行配對的值。
然後綜合上述的3組輸入值再計算出一個排列多項式:
https://ithelp.ithome.com.tw/upload/images/20241013/20119569qlJW7nIoiM.png
然後根據以上公式,可以計算出多項式的值:
https://ithelp.ithome.com.tw/upload/images/20241013/20119569B2ewK8LW7L.png
因此,在第二輪得出的輸出是:
https://ithelp.ithome.com.tw/upload/images/20241013/20119569Jhhsx1e0Ge.png

第三輪

利用排列多項式來確保複雜限制是滿足條件的,在過程中,證明者需要計算一個商挑戰,
同時也需要根據之前獲得到的資料(所以要記住在之前計算所得到的各種輸入和輸出),來構建及計算一個商多項式t(X):
https://ithelp.ithome.com.tw/upload/images/20241013/20119569t6WGPhgFBo.png
之後需要將t(x)拆分成為一個次方小於n的多項式:
https://ithelp.ithome.com.tw/upload/images/20241013/20119569y3sz8sd3WU.png
當中:
https://ithelp.ithome.com.tw/upload/images/20241013/20119569xxhxEblec5.png
另外會有一些限制:
https://ithelp.ithome.com.tw/upload/images/20241013/20119569j5JER4AfR0.png
然後再進行計算:
https://ithelp.ithome.com.tw/upload/images/20241013/20119569zFsaA7bCp2.png
因此可以得出3部分的輸出:
https://ithelp.ithome.com.tw/upload/images/20241013/20119569dYpENmDwss.png

第四輪

證明者需要對於已提交的多項式中,計算橢圓曲線上指定的點的評估,
首先需要計算在指定點上打開的評估(針對證人的多項式上的點):
https://ithelp.ithome.com.tw/upload/images/20241013/20119569GeEW469iIt.png
還有排列多項式及排列檢查多項式上的點的評估:
https://ithelp.ithome.com.tw/upload/images/20241013/201195696DJMC1hvEV.png
另外,需要計算一個在位置 δ 上的點的一個評估挑戰:
https://ithelp.ithome.com.tw/upload/images/20241013/20119569G6XUi3VHur.png
之後,需要計算另一個線性評估:
https://ithelp.ithome.com.tw/upload/images/20241013/20119569YVJpThbjjk.png
在建構多項式之後,會計算出:
https://ithelp.ithome.com.tw/upload/images/20241013/20119569D973B95FlZ.png
因為在第四輪的輸出是:
https://ithelp.ithome.com.tw/upload/images/20241013/20119569neWkbKDUnv.png

第五輪

需要計算多個多項式證明,而在計算前,需要先計算打開的挑戰 v 及計算線性多項式 r(X)。
然後綜合之前計算所得,可以進一步地去計算在以下點打開的多項式證明:
https://ithelp.ithome.com.tw/upload/images/20241013/201195698f9aSXjEsH.png
https://ithelp.ithome.com.tw/upload/images/20241013/20119569B73uFG0YFr.png
另外,還要計算在以下點打開的多項式證明:
https://ithelp.ithome.com.tw/upload/images/20241013/20119569acONcmr9qV.png
因此,根據上面所得到的兩個證明,進一步去計算:
https://ithelp.ithome.com.tw/upload/images/20241013/20119569AKHx4Jz5fM.png
最後得出得輸出會是:
https://ithelp.ithome.com.tw/upload/images/20241013/20119569N8QOTYEQHq.png
最後一步,就是綜合所有獲得的資料產出一個SNARK證明:
https://ithelp.ithome.com.tw/upload/images/20241013/20119569Fa5W2H7MNk.png
當成功產出SNARK證明後,可以用於進行不同點的評估挑戰,只要證明是真確,就可以成功進行驗證。


上一篇
[Day29] 零知識證明-走進PLONK世界: PlonK 演算法(第一輪)
系列文
零知識證明-走進PLONK世界30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言